package com.xk857.school.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xk857.entities.Card;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xk857.school.req.AddCardREQ;
import com.xk857.school.req.CardREQ;
import com.xk857.util.base.Result;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author CV大魔王
 * @since 2021-05-02
 */
public interface IMyCardService extends IService<Card> {

    /**
     * 分页查询所有校园卡信息
     * @param req 查询条件
     * @return 校园卡列表
     */
    IPage<Card> queryPage(CardREQ req);

    /**
     * 查询校园卡信息总数
     * @param status 0已删除 1
     * @return
     */
    Integer queryCount(String status);


    /**
     * 发布捡卡或丢卡信息
     * @param card 简化后的校园卡信息
     * @return 发布成功或失败
     */
    Result add(AddCardREQ card);


    /**
     * 查询所有学校名称
     * @return
     */
    Result getSchoolNameList();

    /**
     * 更新捡卡或丢卡信息
     * @param card
     * @return
     */
    Result update(Card card);


    /**
     * 删除捡卡信息
     * @param id
     * @return
     */
    Result delete(String id);

    /**
     * 本月校园卡信息发布数量
     * @return
     */
    Integer queryCountMonth();


    /**
     * 上月校园卡信息发布数量
     * @return
     */
    Integer queryCountFirstMonth();


    /**
     * 本周校园卡信息发布数量
     * @return
     */
        Integer queryCountWeek();


    /**
     * 上周校园卡信息发布数量
     * @return
     */
    Integer queryCountFirstWeek();

    /**
     * 校园卡找回
     * @param cardId 校园卡信息id
     * @return
     */
    Result updateComplete(String cardId);


    /**
     * 捡到校园卡
     * @param cardId 校园卡信息id
     * @return
     */
    Result updatePickUp(String cardId);
}
